package com.heima.leetcode.practice;

/**
 * leetcode 167. 两数之和 II - 输入有序数组
 * @author 勾新杰
 * @version 1.0
 * @date 2024/11/15 22:18
 */
public class E167 {

    /**
     * 双指针法
     * @param numbers 数字数组
     * @param target 目标值
     * @return 索引数组
     */
    public int[] twoSum(int[] numbers, int target) {
        int[] result = new int[2];
        int i = 0, j = numbers.length - 1;
        while (i < j){
            if (numbers[i] + numbers[j] < target){
                i++;
            } else if (numbers[i] + numbers[j] > target) {
                j--;
            } else {
                result[0] = i + 1; // 从1计数
                result[1] = j + 1; // 从1计数
                break;
            }
        }
        return result;
    }
}
